In a network environment, devices, such as a client and server, may communicate via a transport layer connection. In a TCP/IP network, a client and server may establish a transport control protocol (TCP) connection and communicate by transmitting TCP packets. With TCP, the client and server may exchange transport control protocol information by optional information in headers of TCP packets referred to as TCP header options. For example, a client and server may negotiate the internet protocol segment size by using the maximum segment size option field in a TCP synchronization packet known as a TCP SYN packet. In another example, the client and server may use a TCP packet selective acknowledgement mechanism implemented with TCP header options to communicate which packets have been received. In other examples, devices may exchange proprietary control information using TCP header options.
One problem with using TCP header options is that a device between two communicating end points may terminate the transport layer connection or otherwise remove TCP header options. For example, a client and server may communicate over TCP via an intermediate device, such as a firewall. In one case, the intermediate device may terminate a first TCP connection with the client and establish a second TCP connection with the server on behalf of the client. TCP header options exchanged between the client and server may be consumed by the intermediate device. If a client communicates TCP header options to the server, the intermediate device may consume those options. As a result, the server does not receive the client set TCP options via the second connection. Likewise, if the server communicates TCP header options to the client, the intermediate device may consume the TCP options and not communicate them via the first connection to the client. In another case, the intermediate device may not recognize a field of the TCP header option. For example, the intermediate device may be a firewall that detects unknown or certain TCP header options as a security risk. In response, the firewall may discard or reject these TCP packets.
Thus, it is desirable to provide systems and methods to preserve transport layer protocol options communicated via network equipment terminating transport layer connections.